package NowCoder.Mathematics;
import java.util.*;

/**
 * HJ60 查找组成一个偶数最接近的两个素数
 * 简单  通过率：44.42%  时间限制：1秒  空间限制：32M
 * 知识点 查找 基础数学 穷举
 * warning 校招时部分企业笔试将禁止编程题跳出页面，为提前适应，练习时请使用在线自测，而非本地IDE。
 * 描述
 * 任意一个偶数（大于2）都可以由2个素数组成，组成偶数的2个素数有很多种情况，本题目要求输出组成指定偶数的两个素数差值最小的素数对。
 *
 * 数据范围：输入的数据满足
 * 4≤n≤1000
 * 输入描述：
 * 输入一个大于2的偶数
 *
 * 输出描述：
 * 从小到大输出两个素数
 *
 * 示例1
 * 输入：
 * 20
 * 输出：
 * 7
 * 13
 *
 * 示例2
 * 输入：
 * 4
 * 输出：
 * 2
 * https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9?tpId=37&tqId=21283&ru=/exam/oj
 */
public class 查找组成一个偶数最接近的两个素数_HJ60 {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);

        while(scanner.hasNext()){
            int num = scanner.nextInt();
            minPrimePair(num);
        }
    }

    public static void minPrimePair(int num){
        for(int i = num / 2;i >= 2;i--){
            if(isPrime(i) && isPrime(num - i)){
                System.out.println(i);
                System.out.println(num - i);
                break;
            }
        }
    }
    public static boolean isPrime(int num){
        if(num <= 1){
            return false;
        }

        if(num == 2){
            return true;
        }

        for(int i = 2 ;i < num;i++){
            if(num % i == 0){
                return false;
            }
        }

        return true;
    }
}
